package com.mtao.impl;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.mtao.*;
import com.mtao.dto.ProductDto;
import com.mtao.dto.ProductTypeDto;
import com.mtao.entity.ProductType;
import com.mtao.mapper.ProductMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;

@Service
public class ProductServiceImpl implements ProductService {

    @Resource
    private ProductMapper productMapper;

    /**
     * 获取所有产品类型
     *
     * @param
     */

    @Override
    public List<com.mtao.entity.ProductType> getProductTypeAllList() {
        List<com.mtao.entity.ProductType> list =  productMapper.allTypeList();
        return list;
    }

    /**
     * 获取产品类型列表 带分页
     *
     * @return
     */
    @Override
    public PageBean<com.mtao.entity.ProductType> getProductTypeList(ProductTypeDto productTypeDto ) {
        PageBean<com.mtao.entity.ProductType> pageBean = new PageBean<>();
        //2.开启分页查询 PageHelper
        PageHelper.startPage(productTypeDto.getPage(), productTypeDto.getSize());
        //3.调用mapper
        List<com.mtao.entity.ProductType> list=  productMapper.getProductTypeList(productTypeDto);
        Page<com.mtao.entity.ProductType> p =(Page<com.mtao.entity.ProductType>) list;
        //把数据填充到pageBeanBanner对象里面
        pageBean.setTotal(p.getTotal());
        pageBean.setList(p.getResult());
        return pageBean;
    }

    /**
     * 添加产品类型
     *
     * @param productType
     */

    @Override
    public void addProductType(com.mtao.entity.ProductType productType) {
        productType.setCreateTime(LocalDateTime.now());
        productMapper.addProductType(productType);
    }

    /**
     * 更新产品类型
     *
     * @param productType
     */

    @Override
    public void updateProductType(ProductType productType) {
        productType.setUpdateTime(LocalDateTime.now());
        productMapper.updateProductType(productType);
    }

    /**
     * 删除产品类型
     *
     * @param id
     */

    @Override
    public void deleteProductType(String id) {
        List<String> idList = Arrays.asList(id.split(","));
        productMapper.deleteProductType(idList);
    }

    /**
     * 获取产品列表
     *
     * @return
     */

    @Override
    public PageBean<com.mtao.entity.Product> getProductList(ProductDto productDto) {
        PageBean<com.mtao.entity.Product> pageBean = new PageBean<>();
        //2.开启分页查询 PageHelper
        PageHelper.startPage(productDto.getPage(), productDto.getSize());
        //3.调用mapper
        List<com.mtao.entity.Product> list=  productMapper.getProductList(productDto);
        Page<com.mtao.entity.Product> p =(Page<com.mtao.entity.Product>) list;
        //把数据填充到pageBeanBanner对象里面
        pageBean.setTotal(p.getTotal());
        pageBean.setList(p.getResult());
        return pageBean;
    }

    /**
     * 添加产品
     *
     * @param product
     */

    @Override
    public void addProduct(com.mtao.entity.Product product) {
        product.setCreateTime(LocalDateTime.now());
        productMapper.addProduct(product);
    }
    /**
     * 更新产品
     *
     * @param product
     */
    @Override
    public void updateProduct(com.mtao.entity.Product product) {
        product.setUpdateTime(LocalDateTime.now());
        productMapper.updateProduct(product);
    }
    /**
     * 删除产品
     *
     * @param id
     */
    @Override
    public void deleteProduct(String id) {
        List<String> idList = Arrays.asList(id.split(","));
        productMapper.deleteProduct(idList);
    }

}
